﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;

//using Microsoft.VisualStudio.TestTools.UnitTesting;

//using Pibby.Core.IO;
//using Pibby.Core.Models;
//using Pibby.Core.Persistence;
//using Pibby.Core.Presenters;
//using Pibby.Core.Views;

//namespace Pibby.Core.Tests
//{
//    [TestClass]
//    //[TestCategory("Long Running")]
//    public class SubscriptionPresenterTests : IntegrationBaseTestFixture
//    {
//        private Stubs.SubscriptionView _view;
//        private SubscriptionModel _model;
//        private SubscriptionPresenter _presenter;

//        [TestInitialize]
//        public override void Setup()
//        {
//            base.Setup();

//            string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
//            IFolder folder = new Stubs.Folder(folderPath, 25, 0);

//            this._view = new Stubs.SubscriptionView();
//            this._model = new SubscriptionModel(this.Repository, folder);
//            this._presenter = new SubscriptionPresenter(this._view, this._model, new Pibby.Core.Web.NetworkAuthentication ());
//        }

//        [TestCleanup]
//        public override void TearDown()
//        {
//            base.TearDown();

//            this._presenter.UnsubscribeToClientEvents();
//        }

//        [TestMethod]
//        public void AtStartup_EmptyRepository_ModelAndViewLoadedCorrectly()
//        {
//            this._view.SimulateLoadEvent();
//            Assert.IsTrue(this._view.ShowPodcastsCalled);
//            Assert.AreEqual(0, this._model.Podcasts.Count);
//        }

//        [TestMethod]
//        public void AtStartup_FilledRepository_ModelAndViewLoadedCorrectly()
//        {
//            const int howMany = 10;
//            PodcastCollection casts = Stubs.PodcastFactory.GeneratePodcasts("mypodcast", howMany);

//            foreach (var cast in casts)
//            {
//                this.Repository.Put(cast);
//            }

//            this._view.SimulateLoadEvent();
//            Assert.IsTrue(this._view.ShowPodcastsCalled);
//            Assert.AreEqual(howMany, this._model.Podcasts.Count);
//        }

//        [TestMethod]
//        public void WhenImportingPodcasts_NewPodcast_IsImported()
//        {
//        }

//        [TestMethod]
//        public void WhenImportingPodcasts_ExistingPodcast_IsIgnored()
//        {
//        }
		
//        [TestMethod]
//        public void WhenExportingPodcasts_AllPodcasts_OpmlIsGenerated()
//        {
//        }

//        [TestMethod]
//        public void WhenAddingPodcast_NewPodcast_IsAdded()
//        {
//        }
		
//        [TestMethod]
//        public void WhenAddingPodcast_ExistingPodcast_SignalsError()
//        {
//        }

//        [TestMethod]
//        public void WhenPodcastSelected_SpecifiedPodcast_ReturnsPodcastInfo()
//        {
//        }

//        [TestMethod]
//        public void WhenRemovePodcast_ExistingPodcast_LeavesEpisodes()
//        {
//        }

//        [TestMethod]
//        public void WhenRemovePodcast_ExistingPodcastWithEpisodes_RemovesAllReferences()
//        {
//        }

//    }
//}
